package smallfrench.moteur.biblio.err;

import smallfrench.moteur.biblio.AClasse;
import smallfrench.moteur.biblio.AnnotationMembre;
import smallfrench.moteur.interp.RObjet;
import smallfrench.moteur.interp.err.RException;
import smallfrench.moteur.lexer.Position;

/**
 * Doit survenir lors d’erreurs d’index de listes ou de tableaux.
 * 
 * @author antoine1023
 *
 */
public class ErreurIndex extends AException {

	public static final AClasse CLASSE = AClasse.creer(ErreurIndex.class);

	/**
	 * Créé une nouvelle erreur suite à une tentative d’accès à un index de
	 * collection invalide.
	 * @param mauvaisIndex L’index de la collection
	 */
	@AnnotationMembre
	public ErreurIndex(RObjet mauvaisIndex) {
		super("L’index " + mauvaisIndex + " est invalide.");
	}

	public static RException nouvelleException(Position position, RObjet i) {
		ErreurIndex ei = new ErreurIndex(i);
		ei.ajouterPosition(position);
		return new RException(ei);
	}

	public static RException nouvelleException(RObjet i) {
		ErreurIndex ei = new ErreurIndex(i);
		return new RException(ei);
	}

}
